From 8cb375de11cc20fa5683c0d065bef687d3f9eeb7 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 21 Jan 2020 23:43:01 -0500 Subject: [PATCH] window: Add a profiler mark around size allocation This give a high-level entry for the duration of size allocation in the frame cycle. --- gtk/gtkwindow.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index e390e6bca2..ec74cbb30f 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -75,6 +75,7 @@ #include "gdk/gdktextureprivate.h" #include "gdk/gdk-private.h" +#include "gdk/gdkprofilerprivate.h" #include #include @@ -6014,6 +6015,7 @@ surface_render (GdkSurface *surface, GtkWidget *widget) { gtk_widget_render (widget, surface, region); + return TRUE; } @@ -6304,11 +6306,18 @@ void gtk_window_check_resize (GtkWindow *self) { GtkWidget *widget = GTK_WIDGET (self); + gint64 before = g_get_monotonic_time (); if (!_gtk_widget_get_alloc_needed (widget)) gtk_widget_ensure_allocate (widget); else if (gtk_widget_get_visible (widget)) gtk_window_move_resize (self); + + if (gdk_profiler_is_running ()) + { + gint64 after = g_get_monotonic_time (); + gdk_profiler_add_mark (before * 1000, (after - before) * 1000, "layout", ""); + } } static void -- 2.30.2